We were inadvertedly not letting the grab_widget determine
a cursor. This was showing up as resize cursors not appearing.
surface = gtk_native_get_surface (gtk_widget_get_native (target));
- if (grab_widget && !gtk_widget_is_ancestor (target, grab_widget))
+ if (grab_widget && !gtk_widget_is_ancestor (target, grab_widget) && target != grab_widget)
{
/* Outside the grab widget, cursor stays to whatever the grab
* widget says.
*/
while (target)
{
- if (grab_widget && target == grab_widget)
- break;
-
/* Don't inherit cursors across surfaces */
if (surface != gtk_native_get_surface (gtk_widget_get_native (target)))
break;
if (cursor)
break;
+ if (grab_widget && target == grab_widget)
+ break;
+
target = _gtk_widget_get_parent (target);
}
}